class Person:
    def __init__(self):
        print("出生时候会啼哭面向世界")
    def say(self):
        print("我是Person")
    def walk(self):
        print("初始化人的走路功能")


class Student(Person):
    def __init__(self,name):
        #此时super()可以让子类调父类的一些方法
        #print(super())
        super().__init__()

        self.name=name
    def getName(self):
        return self.name

    def say(self):
        #用super()调用父类的say方法，super方法不仅仅可以存在于构造函数中，在其他地方也可以用到
        super().say()
        print("我是中国学生")

    #如果student中也有walk,那么RunStudent会优先使用父亲student的walk，而不是用爷爷Person的walk
    def walk(self):
        print("我是student的walk")

class RunStudent(Student):
    def walk(self):
        super().walk()
        print("我可以快走了")


#此时子类student会重写父类的init方法，因此上面的print("出生时候会啼哭面向世界")没有执行
# stu=Student("老刘")
# print(stu.getName())
# print(stu.name)

#Student("老刘").say()

#调用父类的父类中的同名方法
RunStudent("老刘").walk()